Hoje várias empresas utilizam o balanceamento de carga nos serviços (AppServer) devido a falha na gerência de memória do appserver e a limitação da plataforma 32 bits, fazendo assim a distribuição dos acessos ao ERP em diversos serviços que podem estar espalhados em servidores na rede.

O que poucos sabem é da possibilidade de realizar o balanceamento também do DBAccess (topconnect para os mais antigos). Sabendo que nesse mundo tecnológico nem tudo sai conforme o combinado, me deparei com um ambiente em que o DBAccess estava recebendo mais de mil acessos simultâneos e não estava dando conta de responder a todos de forma satisfatória, ocasionando bloqueios de acesso ao top diversas vezes e queda de performance.

E agora José? Vamos ver abaixo mais detalhes sobre o balanceamento de carga no DBAccess e como configurá-lo:

A configuração de balanceamento do DBAccess não é diretamente responsável por fazer distribuição de carga ou das conexões. Deste modo, cada serviço do AppServer deve ser explicitamente configurado para se conectar ao DBAccess Slave e esse DBAccess Slave é configurado para apontar para o DBAccess Master que realizar os controles de LOCK e de licenças.

Topologia Sugerida

Usando como exemplo um ambiente com 3 servidores, nomeados SRVDB, SRVAPP1 e SRVAPP2, onde o servidor de banco de dados possui o DBAccess Master e os servidores SRVAPP1 e SRVAPP2 possuam cada um 2 serviços do AppServer configurados para se conectar ao DBAccess Slave em seus próprios servidores.

Passo a Passo:

  • Instale um DBAccess em cada máquina que contém o AppServer (SRVAPP1 e SRVAPP2)
  • Configure o ODBC nos servidores SRVAPP1 e SRVAPP2 para conectar no banco de dados do SRVDB
  • Configure cada DBAccess nos servidores SRVAPP1 e SRVAPP2 para o modo de acesso SLAVE conforme abaixo:

dbAccess.ini

Mode=Slave
MasterServer=SRVDB
MasterPort=7890 ;;Informa a porta do DBAccess configurada no SRVDB
  • Configure o DBAccess no servidor SRVDB para o modo de acesso MASTER conforme abaixo:

dbAccess.ini

Mode=Master
  • Inicie o DBAccess no servidor SRVDB
  • Inicie o DBAccess nos servidores de aplicação (SRVAPP1 e SRVAPP2)
  • Teste as conexões de cada um dos DBAccess usando o DBMonitor
  • Altere os arquivos de configuração (appserver.ini) dos servidores SRVAPP1 e SRVAPP2 para acessar o DBAccess Slave do próprio servidor

O License Server deve ser configurado apenas no DBAccess MASTER

Características do DBAccess com balanceamento de carga

Um DBAccess Slave somente consegue estabelecer conexão com o banco de dados se conseguir conectar primeiro com o DBAcccess Master.

O DBMonitor somente tem acesso às informações e conexões processadas naquele serviço. Logo, para localizar uma conexão no ambiente mencionado deve-se abrir um DBMonitor para cada DBAccess Slave.

O DBAccess com balanceamento e controle de licenças centralizado no MASTER depende da build com release igual ou superior a 20170202.

Comentários